home *** CD-ROM | disk | FTP | other *** search
- From: Colin Robbins <"/I=c/S=robbins/O=XTEL/PRMD=X-Tel Services/ADMD= /C=GB/"@chx400.switch.ch>
- Message-ID: <"13667 Fri Nov 22 10:38:30 1991"@xtel.co.uk>
- To: quipu@cs.ucl.ac.uk
- Subject: QUIPU-7.0 Patch 1
- Reply-To: quipu-support@cs.ucl.ac.uk
- Autoforwarded: TRUE
- X400-Recipients: non-disclosure:;
-
-
- - ------------------------------ Start of body part 1
-
-
- Dear Camayocs,
-
- Included below is Patch #1 for QUIPU-7.0.
-
- The major aim of the patch is to fix DSA reliability problems.
- The fixes include:
-
- Fixes to prevent replicated EDBs filling the Disk with garbage.
- Fixes to the scheduling code to increase DSA reliability.
- Fix to correctly load 'NULL' EDB files.
- Fix to 'alias' indexing problem.
- A fix to the X.25 handler to allow for 'quick' connections!
- Protocol alignment for an obsure read operation.
- Test for hypothetcial deadlock case.
- Fix to close the quipu.log file periodically.
-
- For DUAs we have included a fix to the Quality of Service and
- T.61 string syntax handlers.
-
- The patch should be applied to the ISODE-7.0 source tree.
- You will then need to re-compile ISODE and QUIPU. To do this you
- should use
-
- cd isode-7.0
- ./make all all-quipu
- su
- ./make inst-all inst-quipu
-
- And if you installed the "little" dish binaries you should do
-
- cd others/quipu/uips/dish
- ./make all
- su
- ./make inst-all
-
-
- Thanks to Paul Barker, Tim Howes, Mark Prior, Mike Roe, Thomas Lenggenhager,
- George Michaelson, Oliver Wenzel, and the Giant Tortoise DSA for
- helping detect and fix these bugs.
-
- Colin
-
-
- *** /tmp/RCSAa10173 Wed Oct 23 11:39:17 1991
- - --- tsap/tp0ts.c Wed Oct 23 10:59:06 1991
- ***************
- *** 121,127 ****
- if (t = tb -> tb_retry) {
- tb -> tb_retry = NULL;
-
- ! if (async)
- switch ((*tb -> tb_retryfnx) (tb, td)) {
- case NOTOK:
- goto out;
- - --- 121,127 ----
- if (t = tb -> tb_retry) {
- tb -> tb_retry = NULL;
-
- ! if (async && tb -> tb_retryfnx)
- switch ((*tb -> tb_retryfnx) (tb, td)) {
- case NOTOK:
- goto out;
- *** /tmp/RCSAa10173 Wed Oct 23 11:39:18 1991
- - --- tsap/ts2sunlink.c Wed Oct 23 10:58:40 1991
- ***************
- *** 175,181 ****
- register struct tp4pkt *t;
-
- t = NULL;
- ! if (async)
- switch ((*tb -> tb_retryfnx) (tb, td)) {
- case NOTOK:
- goto out;
- - --- 175,181 ----
- register struct tp4pkt *t;
-
- t = NULL;
- ! if (async && tb -> tb_retryfnx)
- switch ((*tb -> tb_retryfnx) (tb, td)) {
- case NOTOK:
- goto out;
- *** /tmp/RCSAa10173 Wed Oct 23 11:39:19 1991
- - --- tsap/ts2tcp.c Wed Oct 23 10:57:33 1991
- ***************
- *** 189,194 ****
- - --- 189,196 ----
- #endif
- #endif
-
- + tb -> tb_retryfnx = NULLIFP; /* No need... */
- +
- return DONE;
- }
-
- *** /tmp/RCSAa10173 Wed Oct 23 11:39:19 1991
- - --- tsap/ts2tli.c Wed Oct 23 10:58:54 1991
- ***************
- *** 459,465 ****
- if (tb->tb_cc == -1) { /* call not yet connected */
- struct TSAPaddr ta;
-
- ! if (async) {
- switch ((*tb -> tb_retryfnx) (tb, td)) {
- case NOTOK:
- goto out;
- - --- 459,465 ----
- if (tb->tb_cc == -1) { /* call not yet connected */
- struct TSAPaddr ta;
-
- ! if (async && tb -> tb_retryfnx) {
- switch ((*tb -> tb_retryfnx) (tb, td)) {
- case NOTOK:
- goto out;
- *** /tmp/RCSAa10173 Wed Oct 23 11:39:20 1991
- - --- tsap/ts2x25.c Wed Oct 23 10:57:34 1991
- ***************
- *** 146,151 ****
- - --- 146,153 ----
- (void) XTService (tb); /* in case pktsize changed... */
- LLOG (x25_log, LLOG_NOTICE,
- ("connection %d to %s", fd, na2str (remote)));
- +
- + tb -> tb_retryfnx = NULLIFP; /* No need... */
-
- return DONE;
- }
-
-
- *** /tmp/RCSAa07079 Tue Nov 19 13:13:36 1991
- - --- quipu/get_dsa_info.c Tue Nov 19 13:10:00 1991
- ***************
- *** 306,313 ****
- break;
-
- case DI_TASK:
- ! task_dsa_info_wakeup(di);
- ! di_free(di);
- break;
-
- default:
- - --- 306,313 ----
- break;
-
- case DI_TASK:
- ! if ( task_dsa_info_wakeup(di) )
- ! di_free(di);
- break;
-
- default:
- *** /tmp/RCSAa23005 Thu Nov 14 16:22:36 1991
- - --- quipu/ds_read.c Thu Nov 14 16:16:25 1991
- ***************
- *** 160,172 ****
- quipu_ctx, realtarget)) != NULLATTR)
- goto out;
-
- error->dse_type = DSE_ATTRIBUTEERROR;
- error->ERR_ATTRIBUTE.DSE_at_name = get_copy_dn (entryptr);
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_what =DSE_AT_NOSUCHATTRIBUTE;
- ! if (arg->rda_eis.eis_select != NULLATTR)
- ! error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type = AttrT_cpy(arg->rda_eis.eis_select->attr_type);
- ! else
- ! error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type = NULLAttrT;
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_value = NULLAttrV;
- error->ERR_ATTRIBUTE.DSE_at_plist.dse_at_next = DSE_AT_NOPROBLEM;
- dn_free (realtarget);
- - --- 160,174 ----
- quipu_ctx, realtarget)) != NULLATTR)
- goto out;
-
- + if (arg->rda_eis.eis_select == NULLATTR)
- + goto out;
- +
- error->dse_type = DSE_ATTRIBUTEERROR;
- error->ERR_ATTRIBUTE.DSE_at_name = get_copy_dn (entryptr);
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_what =DSE_AT_NOSUCHATTRIBUTE;
- ! error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type =
- ! AttrT_cpy(arg->rda_eis.eis_select->attr_type);
- !
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_value = NULLAttrV;
- error->ERR_ATTRIBUTE.DSE_at_plist.dse_at_next = DSE_AT_NOPROBLEM;
- dn_free (realtarget);
- ***************
- *** 206,219 ****
- }
-
- if ((result->rdr_entry.ent_attr = eis_select (arg->rda_eis,entryptr, dsp ? NULLDN : binddn, quipu_ctx, realtarget)) == NULLATTR)
- ! if (! arg->rda_eis.eis_allattributes) {
- error->dse_type = DSE_ATTRIBUTEERROR;
- error->ERR_ATTRIBUTE.DSE_at_name = get_copy_dn (entryptr);
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_what =DSE_AT_NOSUCHATTRIBUTE;
- ! if (arg->rda_eis.eis_select != NULLATTR)
- ! error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type = AttrT_cpy(arg->rda_eis.eis_select->attr_type);
- ! else
- ! error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type = NULLAttrT;
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_value = NULLAttrV;
- error->ERR_ATTRIBUTE.DSE_at_plist.dse_at_next = DSE_AT_NOPROBLEM;
- dn_free (realtarget);
- - --- 208,220 ----
- }
-
- if ((result->rdr_entry.ent_attr = eis_select (arg->rda_eis,entryptr, dsp ? NULLDN : binddn, quipu_ctx, realtarget)) == NULLATTR)
- ! if ((! arg->rda_eis.eis_allattributes) && arg->rda_eis.eis_select) {
- error->dse_type = DSE_ATTRIBUTEERROR;
- error->ERR_ATTRIBUTE.DSE_at_name = get_copy_dn (entryptr);
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_what =DSE_AT_NOSUCHATTRIBUTE;
- ! error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type =
- ! AttrT_cpy(arg->rda_eis.eis_select->attr_type);
- !
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_value = NULLAttrV;
- error->ERR_ATTRIBUTE.DSE_at_plist.dse_at_next = DSE_AT_NOPROBLEM;
- dn_free (realtarget);
-
-
-
- *** /tmp/RCSAa11110 Thu Oct 17 14:15:48 1991
- - --- quipu/shadow.c Thu Oct 17 13:51:18 1991
- ***************
- *** 58,64 ****
- extern AttributeType at_xref;
- extern AttributeType at_nssr;
- extern AttributeType at_objectclass;
- - - extern Attr_Sequence cpy_as_comp();
- extern short syntax_dn;
-
- typedef struct _atlist {
- - --- 58,63 ----
- ***************
- *** 357,363 ****
- "external reference missing"));
- return;
- }
- ! new_as = as_merge (new_as, cpy_as_comp (as));
-
- if ((as = as_find_type (new_as, at_objectclass)) == NULLATTR) {
- LLOG (log_dsap, LLOG_EXCEPTIONS, (
- - --- 356,362 ----
- "external reference missing"));
- return;
- }
- ! new_as = as_merge (new_as, as_comp_cpy (as));
-
- if ((as = as_find_type (new_as, at_objectclass)) == NULLATTR) {
- LLOG (log_dsap, LLOG_EXCEPTIONS, (
-
-
-
- *** /tmp/RCSAa02760 Mon Oct 14 12:47:21 1991
- - --- dsap/common/qos.c Mon Oct 14 12:46:55 1991
- ***************
- *** 354,362 ****
- }
- attrQoS_print (ps, p -> dit_quality, format);
- }
- ! if (a -> dit_description)
- ! ps_printf (ps, format == READOUT ? "\n%*s(%s)" : " # %s",
- ! a -> dit_description, qos_indent, "");
- }
-
- static struct attrQoS *str2attrQoS (str)
- - --- 359,371 ----
- }
- attrQoS_print (ps, p -> dit_quality, format);
- }
- ! if (a -> dit_description) {
- ! if (format == READOUT)
- ! ps_printf (ps, "\n%*s(%s)", qos_indent,
- ! a -> dit_description);
- ! else
- ! ps_printf (ps, " # %s", a -> dit_description);
- ! }
- }
-
- static struct attrQoS *str2attrQoS (str)
-
-
- *** /tmp/RCSAa24516 Thu Nov 7 10:35:20 1991
- - --- dsap/common/string.c Thu Nov 7 10:34:55 1991
- ***************
- *** 88,101 ****
- 0xe5, '?', '?', '?', '?', '?', '?', '?', '?',
-
- /* Diaresis upper case */
- ! 0xc4, '?', 0xc9, 0xcd, '?', 0xd3, 0xda, 0x82,
- /* Diaresis lower case */
- ! 0xe4, '?', 0xe9, 0xed, '?', 0xf3, 0xfa, 0xff, '"',
-
- /* Umlaut upper case */
- ! 0xc4, '?', 0xc9, 0xcd, '?', 0xd3, 0xda, 0x82,
- /* Umlaut lower case */
- ! 0xe4, '?', 0xe9, 0xed, '?', 0xf3, 0xfa, 0xff, '"',
-
- /* Ring upper case */
- 0xc5, '?', '?', '?', '?', '?', '?', '?',
- - --- 94,107 ----
- 0xe5, '?', '?', '?', '?', '?', '?', '?', '?',
-
- /* Diaresis upper case */
- ! 0xc4, '?', 0xcb, 0xcf, '?', 0xd6, 0xdc, 0x82,
- /* Diaresis lower case */
- ! 0xe4, '?', 0xeb, 0xef, '?', 0xf6, 0xfc, 0xff, '"',
-
- /* Umlaut upper case */
- ! 0xc4, '?', 0xcb, 0xcf, '?', 0xd6, 0xdc, 0x82,
- /* Umlaut lower case */
- ! 0xe4, '?', 0xeb, 0xef, '?', 0xf6, 0xfc, 0xff, '"',
-
- /* Ring upper case */
- 0xc5, '?', '?', '?', '?', '?', '?', '?',
- ***************
- *** 113,121 ****
- '?', '?', '?', '?', '?', '?', '?', '?', '_',
-
- /* Umlaut upper case */
- ! 0xc4, '?', 0xc9, 0xcd, '?', 0xd3, 0xda, 0x82,
- /* Umlaut lower case */
- ! 0xe4, '?', 0xe9, 0xed, '?', 0xf3, 0xfa, 0xff, '"',
-
- /* Cedilla? upper case */
- '?', 0xc7, '?', '?', '?', '?', '?', '?',
- - --- 119,127 ----
- '?', '?', '?', '?', '?', '?', '?', '?', '_',
-
- /* Umlaut upper case */
- ! 0xc4, '?', 0xcb, 0xcf, '?', 0xd6, 0xdc, 0x82,
- /* Umlaut lower case */
- ! 0xe4, '?', 0xeb, 0xef, '?', 0xf6, 0xfc, 0xff, '"',
-
- /* Cedilla? upper case */
- '?', 0xc7, '?', '?', '?', '?', '?', '?',
-
-
- *** /tmp/RCSAa23601 Thu Aug 22 13:09:42 1991
- - --- quipu/conn_retry.c Thu Aug 22 13:06:38 1991
- ***************
- *** 41,46 ****
- - --- 41,48 ----
-
- struct connection * conn_alloc();
-
- + static test_deadlock();
- +
- /*
- * Deal with an incoming acceptance of association establishment.
- * Return value says whether anything has happened or not.
- ***************
- *** 123,129 ****
- /* See if there is another DSA to try... */
- if ((on->on_state != ON_ABANDONED) && (on->on_dsas != NULL_DI_BLOCK)) {
- LLOG (log_dsap,LLOG_NOTICE,("Trying a different DSA (NOTOK)..."));
- ! if (oper_chain (on) == OK) {
- if (ont == NULLOPER)
- conn->cn_operlist = onext;
- else
- - --- 125,132 ----
- /* See if there is another DSA to try... */
- if ((on->on_state != ON_ABANDONED) && (on->on_dsas != NULL_DI_BLOCK)) {
- LLOG (log_dsap,LLOG_NOTICE,("Trying a different DSA (NOTOK)..."));
- ! if ((test_deadlock(on) == OK) &&
- ! (oper_chain (on) == OK)) {
- if (ont == NULLOPER)
- conn->cn_operlist = onext;
- else
- ***************
- *** 137,143 ****
- }
- conn_extract(conn);
- break;
- !
- case DONE :
- DLOG (log_dsap,LLOG_NOTICE,( "D-BIND.RETRY DONE (%d)",conn->cn_ad));
- if( (conn->cn_ad == NOTOK) || (conn_req_aux(conn) != OK))
- - --- 140,146 ----
- }
- conn_extract(conn);
- break;
- !
- case DONE :
- DLOG (log_dsap,LLOG_NOTICE,( "D-BIND.RETRY DONE (%d)",conn->cn_ad));
- if( (conn->cn_ad == NOTOK) || (conn_req_aux(conn) != OK))
- ***************
- *** 153,159 ****
- /* See if there is another DSA to try... */
- if ((on->on_state != ON_ABANDONED) && (on->on_dsas != NULL_DI_BLOCK)) {
- LLOG (log_dsap,LLOG_NOTICE,("Trying a different DSA (DONE)..."));
- ! if (oper_chain (on) == OK) {
- if (ont == NULLOPER)
- conn->cn_operlist = onext;
- else
- - --- 156,163 ----
- /* See if there is another DSA to try... */
- if ((on->on_state != ON_ABANDONED) && (on->on_dsas != NULL_DI_BLOCK)) {
- LLOG (log_dsap,LLOG_NOTICE,("Trying a different DSA (DONE)..."));
- ! if ((test_deadlock(on) == OK) &&
- ! (oper_chain (on) == OK)) {
- if (ont == NULLOPER)
- conn->cn_operlist = onext;
- else
- ***************
- *** 195,198 ****
- - --- 199,241 ----
-
- if (pstate != conn->cn_state)
- conn->cn_last_used = timenow;
- + }
- +
- +
- + static test_deadlock (on)
- + struct oper_act * on;
- + {
- + struct di_block * di;
- + register int ndi = 0;
- +
- + for (di= on -> on_dsas; di!= NULL_DI_BLOCK; di= di -> di_next)
- + ndi++;
- +
- + /* To proceed, we need to contact on_dsas. */
- + /* Check they do not rely on the conn that has just failed */
- + /* Possibly a better way of testing this... */
- +
- + for (di= on -> on_dsas; di!= NULL_DI_BLOCK; di= di -> di_next)
- + if (( di-> di_state == DI_DEFERRED ) &&
- + ( di-> di_perform ) &&
- + ( di-> di_perform-> on_conn ))
- + switch (di-> di_perform-> on_conn-> cn_state) {
- + case 0:
- + case CN_FAILED:
- + ndi--;
- + }
- +
- + if (ndi != 0)
- + return OK;
- +
- +
- + if (on -> on_task) {
- + on -> on_task -> tk_resp.di_error.de_err.dse_type =
- + DSE_SERVICEERROR;
- + on -> on_task ->
- + tk_resp.di_error.de_err.ERR_SERVICE.DSE_sv_problem =
- + DSE_SV_UNABLETOPROCEED;
- + }
- +
- + return NOTOK;
- }
- *** /tmp/RCSAa23601 Thu Aug 22 13:09:42 1991
- - --- quipu/get_dsa_info.c Thu Aug 22 11:10:31 1991
- ***************
- *** 61,66 ****
- - --- 61,67 ----
- struct di_block * di_lookup;
- struct oper_act * on = NULLOPER;
- int res;
- + Entry te = NULLENTRY;
-
- DLOG (log_dsap,LLOG_TRACE,("get_dsa_info()"));
-
- ***************
- *** 115,132 ****
- }
- }
-
- ! if ((res = really_find_entry(dn, TRUE, dn_stack, FALSE, &((*di_p)->di_entry), err, &(di_lookup))) == DS_OK)
- /* is it really OK ??? */
- ! if (((*di_p)->di_entry ->e_data == E_TYPE_CONSTRUCTOR)
- ! || ((*di_p)->di_entry->e_dsainfo == NULL)
- ! || ((*di_p)->di_entry->e_dsainfo->dsa_addr == NULLPA)) {
- DN dn_found;
- DLOG(log_dsap, LLOG_NOTICE, ("rfe returned a constructor"));
- ! dn_found = get_copy_dn((*di_p)->di_entry);
- ! res = constructor_dsa_info(dn_found,dn_stack,FALSE,(*di_p)->di_entry,err,&(di_lookup));
- dn_free (dn_found);
- ! } else
- (*di_p)->di_entry->e_refcount++;
-
- switch (res)
- {
- - --- 116,137 ----
- }
- }
-
- ! if ((res = really_find_entry(dn, TRUE, dn_stack, FALSE, &te,
- ! err, &(di_lookup))) == DS_OK)
- /* is it really OK ??? */
- ! if ((te->e_data == E_TYPE_CONSTRUCTOR)
- ! || (te->e_dsainfo == NULL)
- ! || (te->e_dsainfo->dsa_addr == NULLPA)) {
- DN dn_found;
- DLOG(log_dsap, LLOG_NOTICE, ("rfe returned a constructor"));
- ! dn_found = get_copy_dn(te);
- ! res = constructor_dsa_info(dn_found, dn_stack, FALSE, te,
- ! err, &(di_lookup));
- dn_free (dn_found);
- ! } else {
- ! (*di_p)->di_entry = te;
- (*di_p)->di_entry->e_refcount++;
- + }
-
- switch (res)
- {
- *** /tmp/RCSAa23601 Thu Aug 22 13:09:42 1991
- - --- quipu/di_block.c Thu Aug 22 09:19:15 1991
- ***************
- *** 49,54 ****
- - --- 49,59 ----
- struct di_block *di;
- {
- DLOG(log_dsap, LLOG_TRACE, ("di_free()"));
- +
- + if (di->di_state == -1) {
- + LLOG (log_dsap,LLOG_EXCEPTIONS, ("duplicate di_free"));
- + return;
- + }
-
- switch (di->di_type) {
- case DI_GLOBAL: break;
-
-
-
- *** /tmp/RCSAa16265 Wed Aug 21 15:59:06 1991
- - --- quipu/entry_load.c Wed Aug 21 15:37:27 1991
- ***************
- *** 362,370 ****
-
- if (file_check(offset, e) == OK) {
- if ((e->e_children = getentry_block(e, filename)) == NULLAVL) {
- if (e->e_allchildrenpresent != FALSE &&
- e->e_leaf == FALSE) {
- - - e->e_allchildrenpresent = FALSE;
- got_all = FALSE;
- return(OK);
- } else
- - --- 362,372 ----
-
- if (file_check(offset, e) == OK) {
- if ((e->e_children = getentry_block(e, filename)) == NULLAVL) {
- + if (parse_status != 0)
- + return(NOTOK);
- +
- if (e->e_allchildrenpresent != FALSE &&
- e->e_leaf == FALSE) {
- got_all = FALSE;
- return(OK);
- } else
- *** dsap/common/_turbo_index.c Tue Aug 13 13:06:57 1991
- - --- dsap/common/turbo_index.c Tue Aug 13 13:07:27 1991
- ***************
- *** 472,477 ****
- - --- 472,478 ----
- for ( j = i + 1; pindex->i_nonlocalaliases[ j ]; j++ )
- pindex->i_nonlocalaliases[ j - 1 ] =
- pindex->i_nonlocalaliases[ j ];
- + pindex->i_nonlocalaliases[ j - 1 ] = NULLENTRY;
-
- return;
- }
- *** dsap/common/_attribute.c Mon Aug 12 19:11:30 1991
- - --- dsap/common/attribute.c Mon Aug 12 19:11:54 1991
- ***************
- *** 199,204 ****
- - --- 199,206 ----
- if (acl->ac_default == NULLACL_INFO)
- acl->ac_default = acl_default ();
- }
- + } else {
- + eptr->e_acl = NULLACL;
- }
-
- if (as = entry_find_type (eptr,at_edbinfo)) {
- *** dsap/common/attribute.c~ Wed Jul 17 12:25:03 1991
- - --- dsap/common/attribute.c Mon Aug 12 15:35:30 1991
- ***************
- *** 368,373 ****
- - --- 371,377 ----
- || (AttrT_cmp (as->attr_type,at_alias) == 0)
- || (AttrT_cmp (as->attr_type,at_inherit) == 0)) {
- LLOG(log_dsap,LLOG_EXCEPTIONS,("Inherited system attribute only allowed in default case"));
- + error->dse_type = DSE_ATTRIBUTEERROR;
- error->ERR_ATTRIBUTE.DSE_at_name = get_copy_dn (eptr);
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_what =DSE_AT_CONSTRAINTVIOLATION;
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type = AttrT_cpy (as->attr_type);
- ***************
- *** 379,384 ****
- - --- 383,389 ----
- if (as->attr_value == NULLAV) {
- if ((nas = entry_find_type (eptr,as->attr_type)) == NULLATTR) {
- LLOG(log_dsap,LLOG_EXCEPTIONS,("Value missing for always inherited attribute type"));
- + error->dse_type = DSE_ATTRIBUTEERROR;
- error->ERR_ATTRIBUTE.DSE_at_name = get_copy_dn (eptr);
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_what =DSE_AT_NOSUCHATTRIBUTE;
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type = AttrT_cpy (as->attr_type);
- ***************
- *** 394,399 ****
- - --- 399,405 ----
- if (as->attr_value == NULLAV) {
- if ((nas = entry_find_type (eptr,as->attr_type)) == NULLATTR) {
- LLOG(log_dsap,LLOG_EXCEPTIONS,("Value missing for default inherited attribute type"));
- + error->dse_type = DSE_ATTRIBUTEERROR;
- error->ERR_ATTRIBUTE.DSE_at_name = get_copy_dn (eptr);
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_what =DSE_AT_NOSUCHATTRIBUTE;
- error->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_type = AttrT_cpy (as->attr_type);
-
- *** /tmp/RCSAa27974 Thu Nov 21 13:36:17 1991
- - --- dsap/x500as/af.py Thu Nov 21 13:35:40 1991
- ***************
- *** 88,93 ****
- - --- 88,99 ----
- ANY [[a asn]]
- OPTIONAL
- }
- + %D{
- + if ((*parm)->asn == NULLPE)
- + (*parm)->p_type = ALG_PARM_ABSENT;
- + else
- + (*parm)->p_type = ALG_PARM_UNKNOWN;
- + %}
-
- SubjectPublicKeyInfo [[P struct key_info *]]
- ::=
- *** dsap/common/_cpair.c Wed Jul 17 12:25:16 1991
- - --- dsap/common/cpair.c Tue Sep 17 14:41:19 1991
- ***************
- *** 92,98 ****
- str = ptr;
- if ((str != NULLCP) && (index(str, '#') != NULLCP))
- {
- ! result->cert = str2cert(str);
- if (result->cert == (struct certificate *) 0)
- {
- free((char *) result);
- - --- 92,98 ----
- str = ptr;
- if ((str != NULLCP) && (index(str, '#') != NULLCP))
- {
- ! result->reverse = str2cert(str);
- if (result->cert == (struct certificate *) 0)
- {
- free((char *) result);
-
-
- *** /tmp/RCSAa23032 Thu Nov 21 09:06:53 1991
- - --- quipu/task_select.c Thu Nov 21 09:06:27 1991
- ***************
- *** 40,45 ****
- - --- 40,54 ----
- time_t lastedb_update;
- struct oper_act * pending_ops = NULLOPER;
-
- + #ifndef NO_STATS
- +
- + extern LLog * log_stat;
- + static time_t last_log_close = (time_t)0;
- + #define LOGOPENTIME 60*60 /* Close once every 60 minutes */
- +
- + #endif
- +
- +
- struct task_act * task_select(secs_p)
- int * secs_p;
- {
- ***************
- *** 437,442 ****
- - --- 446,462 ----
- (*secs_p) = 0; /* let connection be re-used */
- }
- }
- +
- + #ifndef NO_STATS
- + if ( (timenow - last_log_close) >= LOGOPENTIME ) {
- + ll_close (log_stat);
- + last_log_close = timenow;
- + } else {
- + if ( (ret_tk == NULLTASK) && (*secs_p >= LOGOPENTIME))
- + *secs_p = LOGOPENTIME; /* Wake to close log! */
- + }
- + #endif
- +
-
- return(ret_tk);
- }
- *** /tmp/RCSAa23069 Thu Nov 21 09:16:46 1991
- - --- dsap/common/entry.c Thu Nov 21 09:15:01 1991
- ***************
- *** 36,41 ****
- - --- 36,46 ----
- AttributeType at_alias;
- AttributeType at_objectclass;
-
- + extern int local_master_size;
- + extern int local_slave_size;
- + extern int local_cache_size;
- +
- +
- directory_free (directory)
- Entry directory;
- {
- ***************
- *** 47,52 ****
- - --- 52,67 ----
-
- if (directory->e_children != NULLAVL)
- (void) avl_free(directory->e_children, directory_free);
- +
- + switch (directory->e_data) {
- + case E_TYPE_SLAVE:
- + local_slave_size--; break;
- + case E_DATA_MASTER:
- + local_master_size--; break;
- + case E_TYPE_CACHE_FROM_MASTER:
- + local_cache_size--; break;
- + }
- +
- entry_free(directory);
- }
- }
- *** /tmp/RCSAa28299 Thu Nov 21 15:45:25 1991
- - --- quipu/dsa_chain.c Thu Nov 21 15:43:54 1991
- ***************
- *** 995,1002 ****
- */
- sort_dsa_list (&di);
-
- ! if (tk == NULLTASK)
- ! return; /* already done it ! */
-
- if(di2cref(di, &(tk->tk_resp.di_error.de_err), tk->tk_conn->cn_ctx) != OK)
- {
- - --- 995,1006 ----
- */
- sort_dsa_list (&di);
-
- ! if (tk == NULLTASK) {
- ! if (di->di_oper == NULLOPER)
- ! return FALSE;
- ! else
- ! return TRUE;
- ! }
-
- if(di2cref(di, &(tk->tk_resp.di_error.de_err), tk->tk_conn->cn_ctx) != OK)
- {
- ***************
- *** 1010,1023 ****
- task_conn_extract(tk);
- task_error(tk);
- task_extract(tk);
- ! return;
- }
- ! return;
- }
-
- task_conn_extract(tk);
- task_error(tk);
- task_extract(tk);
- }
-
- static struct access_point * di2ap (di)
- - --- 1014,1029 ----
- task_conn_extract(tk);
- task_error(tk);
- task_extract(tk);
- ! return TRUE;
- }
- ! return TRUE;
- }
-
- task_conn_extract(tk);
- task_error(tk);
- task_extract(tk);
- +
- + return TRUE;
- }
-
- static struct access_point * di2ap (di)
- *** /tmp/RCSAa01769 Fri Nov 22 09:37:56 1991
- - --- others/quipu/uips/dish/Makefile Fri Nov 22 09:35:04 1991
- ***************
- *** 154,162 ****
- -@ls -gls $@
- -@echo ""
-
- xquipurc: quipurc.o $(LIBES)
- $(LDCC) $(LDFLAGS) -o $@ quipurc.o \
- ! $(LIBDSAP) $(LIBISODE) $(LSOCKET) $(LIBGDBM)
-
- l-quipurc:; $(LINT) $(LFLAGS) quipurc.c $(LLIBS) \
- | grep -v "warning: possible pointer alignment problem"
- - --- 154,165 ----
- -@ls -gls $@
- -@echo ""
-
- + # Don't use shared libs for xquipurc.
- +
- xquipurc: quipurc.o $(LIBES)
- $(LDCC) $(LDFLAGS) -o $@ quipurc.o \
- ! $(TOPDIR)libdsap.a $(TOPDIR)libisode.a \
- ! $(LSOCKET) $(LIBGDBM)
-
- l-quipurc:; $(LINT) $(LFLAGS) quipurc.c $(LLIBS) \
- | grep -v "warning: possible pointer alignment problem"
- *** /tmp/RCSAa23166 Thu Nov 21 09:36:21 1991
- - --- dsap/oidtable.oc Fri Aug 23 08:40:19 1991
- ***************
- *** 156,164 ****
-
- pilotDSA: pilotObjectClass.21 : dsa : dSAQuality :
-
- ! qualityLabelledData: pilotObjectClass.22 : top : dSAQuality : \
- subtreeMinimumQuality, subtreeMaximumQuality
-
- # QUIPU defined object classes
-
- quipuDSA: quipuObjectClass.1 : dSA : \
- - --- 162,174 ----
-
- pilotDSA: pilotObjectClass.21 : dsa : dSAQuality :
-
- ! # Retired - wrong mandatory attribute
- ! oldQualityLabelledData: pilotObjectClass.22 : top : dSAQuality : \
- subtreeMinimumQuality, subtreeMaximumQuality
-
- + qualityLabelledData: pilotObjectClass.23 : top : singleLevelQuality : \
- + subtreeMinimumQuality, subtreeMaximumQuality
- +
- # QUIPU defined object classes
-
- quipuDSA: quipuObjectClass.1 : dSA : \
- *** /tmp/patchlevel Thu Nov 21 15:56:54 1991
- - --- quipu/patchlevel Thu Nov 21 15:56:12 1991
- ***************
- *** 0 ****
- - --- 1,1 ----
- + 1:Thu Nov 21 15:56:12 GMT 1991
-
- - ------------------------------ End of body part 1
-
- ------------------------------ End of forwarded message 1
-
-